<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8" />
    <title>15_预解析-案例练习</title>
</head>

<body>
    <script>
        // (1) 没有var的变量 不会变量提升
        // console.log(a);
        // a = 0;

        // (2)
        // console.log(a);
        // var a = 0;
        // console.log(a); 

        // (3) 当变量和函数重名的时候 那么会忽略变量
        // console.log(a);
        // var a = '我是变量';
        // function a() { 
        //     console.log('我是函数') 
        // }
        // console.log(a); 

        // 预解析结果
        // function a() { 
        //     console.log('我是函数') 
        // }
        // var a;
        // console.log(a);
        // a = '我是变量';
        // console.log(a); 

        // (4)
        // console.log(a);
        // a++;
        // console.log(a);
        // var a = '我是变量';
        // function a() {
        //     console.log('我是函数')
        // }
        // console.log(a);

        // 预解析
        // function a() {
        //     console.log('我是函数')
        // }
        // var a;
        // console.log(a);
        // a++;
        // console.log(a);
        // a = '我是变量';
        // console.log(a);


        // (5) 函数内部的预解析
        // console.log(a);
        // var a = 0;
        // console.log(a);
        // function fn() {
        //     console.log(a);
        //     var a = 1;
        //     console.log(a);
        // }
        // fn()
        // console.log(a);

        // 预解析结果
        // function fn() {
        //     var a;
        //     console.log(a);
        //     a = 1;
        //     console.log(a);
        // }

        // var a;

        // console.log(a);

        // a = 0;
        // console.log(a);

        // fn()
        // console.log(a);

        // (6)
        console.log(a);
        var a = 0;
        console.log(a);
        function fn() {
            console.log(a);
            a = 1;
            console.log(a);
        }
        fn()
        console.log(a);

        // 预解析的结果
        // function fn() {
        //     console.log(a);
        //     a = 1;
        //     console.log(a);
        // }

        // var a;

        // console.log(a);
        // a = 0;

        // console.log(a);

        // fn()
        // console.log(a);




    </script>
</body>

</html>